home *** CD-ROM | disk | FTP | other *** search
-
- SpawnGroup = {};
- SpawnGroup.Prob = {};
- --SpawnGroup.Prob.Miner = .20;
- --SpawnGroup.Prob.Squad = 1.0;
- --SpawnGroup.Prob.Bomber = 3.0;
- --SpawnGroup.Prob.Kamikaze = .20;
- --SpawnGroup.Prob.Driller = 2.5;
- --SpawnGroup.Prob.Psychic = 2.0;
- --SpawnGroup.Prob.Ninja = 2.0;
- --SpawnGroup.Prob.Spiker = 1.0;
- --SpawnGroup.Prob.Stacker = .10;
- SpawnGroup.Prob.Basic = 1.0;
- SpawnGroup.ProbTotal = 0.0;
- SpawnGroup.SpawnSpeed = 0.5;
- SpawnGroup.Time = 0.0;
- SpawnGroup.Spawners = {};
- --SpawnGroup.MaxSpawn = 25;
- SpawnGroup.MaxSpawn = 1;
-
- function SpawnGroup.Update()
-
- SpawnGroup.Time = SpawnGroup.Time + SpawnGroup.SpawnSpeed * GameTimeDiff;
-
- --if( G.KeyTriggered( "Y" ) ) then
- -- SpawnGroup.SpawnSpeed = 0.0;
- --end
-
- --if( G.KeyTriggered( "U" ) ) then
- -- SpawnGroup.SpawnSpeed = 20.0;
- --end
-
- SpawnGroup.SpawnSpeed = 0.1 + GameTime / 300.0;
-
- while( SpawnGroup.Time > 1.0 ) do
-
- SpawnGroup.Time = SpawnGroup.Time - 1.0;
-
- if( NumInvaders >= SpawnGroup.MaxSpawn ) then
- return;
- end
-
- local rand = math.random();
- rand = rand * SpawnGroup.ProbTotal;
-
- local total = 0.0;
- for invadername,prob in pairs( SpawnGroup.Prob ) do
- total = total + prob;
- if( total > rand ) then
- local invader = G.Allocate( invadername );
- local randpos = math.random();
- local tpos = Vector3( 250 + math.cos(randpos*6.28) * 125 ,5, 250 + math.sin(randpos*6.28) * 125 );
- invader.SetPosition( tpos );
- invader.Init();
- return;
- end
- end
- end
- end
-
- function SpawnGroup.Total()
- SpawnGroup.ProbTotal = 0;
- for invadername,prob in pairs( SpawnGroup.Prob ) do
- SpawnGroup.ProbTotal = SpawnGroup.ProbTotal + prob;
- end
- end
-
- function Spawning()
- SpawnGroup.Total();
- SpawnGroup.Update();
- end
-
- GMain[ "Spawning" ] = Spawning;